<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script type="text/javascript">
  		
      function MyClass () {}
      // 向MyClass的原型中添加属性a
      MyClass.prototype.name = '我是原型里面的A';
      // 向MyClass的原型中添加方法
      MyClass.prototype.getOffers = function () {
        alert('success');
      }

      var wmf = new MyClass();
      wmf.age = 18;
      // 使用in检查某个对象中是否含有某个属性，如果对象没有，但是原型有，也会返回true
      console.log('name' in wmf)

     	//可以使用对象的hasOwnProperty()来检查对象自身中是否含有该属性
      //使用该方法只有当对象自身中含有属性时，才会返回true
      console.log(wmf.hasOwnProperty('age'))
      console.log(wmf.hasOwnProperty('name'))
      console.log(wmf.hasOwnProperty("hasOwnProperty")); //false
      
    	/*
			 * 原型对象也是对象，所以它也有原型，
			 * 	当我们使用一个对象的属性或方法时，会现在自身中寻找，
			 * 		自身中如果有，则直接使用，
			 * 		如果没有则去原型对象中寻找，如果原型对象中有，则使用，
			 * 		如果没有则去原型的原型中寻找,直到找到Object对象的原型，
			 * 		Object对象的原型没有原型，如果在Object原型中依然没有找到，则返回undefined
			 */

			console.log(wmf.__proto__.hasOwnProperty("hasOwnProperty"));
			
			console.log(wmf.__proto__.__proto__.hasOwnProperty("hasOwnProperty"));
			
			
			// console.log(wmf.hello);
			
			console.log(wmf.__proto__.__proto__) // Object
			console.log(wmf.__proto__.__proto__.__proto__) // null


  </script>
</head>
<body>
  
</body>
</html>